package temp.camera;

import java.io.File;
import java.util.*;

import static temp.camera.ConfigParam.*;

/**
 * 重命名：按照原始文件名进行排序命名，然后将不同类型相同文件名的文件重命名为相同文件名
 */
public class RenameSequence {


    public static void main(String[] args) {
        System.out.println("******************************************************** 开始重命名所有文件 ********************************************************");
        // 确定文件最大序号，以此来确定序号的最大位数
        File[] listFiles = new File(SOURCE_DIR).listFiles();
        int numMaxLength = 0;
        for (File listFile : Objects.requireNonNull(listFiles)) {
            String fileName = listFile.getName().split("\\.")[0];
            // 目录中最多存放 9999 个文件
            numMaxLength = fileName.substring(fileName.length() - 4).replace("0", "").length();
        }

        for (File file : Objects.requireNonNull(listFiles)) {
            String oldFileName = file.getName();
            if (oldFileName.startsWith(".")) {
                // 去掉隐藏文件
                continue;
            }
            String oldFileNamePre = oldFileName.split("\\.")[0];
            String oldFileNameSuf = oldFileName.split("\\.")[1];
            String newFileName = (SOURCE_DIR + File.separator + FILE_NAME_PREFIX + oldFileNamePre.substring(oldFileNamePre.length() - numMaxLength) + "." + oldFileNameSuf).toLowerCase();
            System.out.println("原始文件名：" + file.getAbsolutePath() + "，修改后的文件名：" + newFileName);
            file.renameTo(new File(newFileName));
        }

        System.out.println("******************************************************** 重命名所有文件结束 ********************************************************");
    }

}
